<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- designer-manual.qdoc -->
  <title>使用容器部件 | Qt Designer 手册</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.14</a></td><td ><a href="qtdesigner-manual.html">Qt Designer 手册</a></td><td >使用容器部件</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtdesigner-manual.html">Qt 5.14.2 参考文档</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="designer-tab-order.html" />
  <link rel="next" href="designer-creating-mainwindows.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="designer-tab-order.html">标签顺序编辑模式</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-creating-mainwindows.html">创建主窗体</a>
</p><p/>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">使用容器部件</h1>
<span class="subtitle"></span>
<!-- $$$designer-using-containers.html-description -->
<div class="descr"> <a name="details"></a>
<p>容器小部件提供对窗体上的一组对象的高级控制。它们可用于执行各种功能，比如管理输入小部件、提供分页和选项卡布局，或者仅充当其他对象的装饰容器。</p>
<p class="centerAlign"><img src="images/designer-widget-morph.png" alt="" /></p><p><i>Qt Designer</i> 提供了可视化反馈来帮助您将对象放置到容器中。当您从窗体上的 widget box (或其他地方)拖动对象时，当光标位于每个容器之上时，它将高亮显示。这表明您可以将对象放入其中，使其成为容器的子对象。这个反馈很重要，因为很容易将对象放在靠近容器的地方，而不需要真正将它们放在容器内。小部件和间隔器（Spacers）都可以在容器内使用。</p>
<p>Stacked widget、tab widget 和 Tool Box 在 <i>Qt Designer</i> 中是专门处理的。通常，在自己的代码中向这些容器添加页面(选项卡、页面、分隔)时，需要提供现有的小部件，可以作为占位符，也可以包含子小部件。在 <i>Qt Designer</i> 中，这些对象是自动创建的，因此您可以直接向每个页面添加子对象。</p>
<p>每个容器通常允许其子对象以一种或多种布局排列。提供的布局管理类型取决于每个容器，尽管设置布局通常只是通过单击选择容器并应用布局。下表显示了可用容器的列表。</p>
<div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-containers-frame.png" alt="" /></td><td ><b>Frame</b><p>Frame 用于封装和分组小部件，以及提供装饰。它们被用作更复杂容器的基础，但也可以用作窗体中的占位符。</p>
<p>Frame 最重要的属性是 <code>frameShape</code>、<code>frameShadow</code>、<code>lineWidth</code> 和 <code>midLineWidth</code> 。这些在 <a href="../qtwidgets/qframe.html">QFrame</a> 类描述中有更详细的描述。</p>
</td></tr>
<tr valign="top" class="even"><td ><img src="images/designer-containers-groupbox.png" alt="" /></td><td ><b>Group Box</b><p>Group Box 通常用于将具有类似目的的复选框和单选按钮集合组合在一起。</p>
<p>Group Box 的重要属性有 <code>title</code>、 <code>flat</code>、 <code>checkable</code>、和 <code>checked</code> 。这些在 <a href="../qtwidgets/qtwidgets-widgets-groupbox-example.html">Group Box</a> 示例中进行了演示，并在 <a href="../qtwidgets/qgroupbox.html">QGroupBox</a> 类文档中进行了描述。每个组框可以包含自己的布局，如果它包含其他小部件，这是必要的。要向组框添加布局，请单击其中并像往常一样应用布局。</p>
</td></tr>
<tr valign="top" class="odd"><td ><img src="images/designer-containers-stackedwidget.png" alt="" /></td><td ><b>Stacked Widget</b><p>Stacked widget 是小部件的集合，其中只有最顶层是可见的。对可见层的控制通常由另一个小部件比如 combobox 用信号和槽来管理 。</p>
<p><i>Qt Designer</i> 在 Stacked widget 的右上角显示箭头，允许您在设计 Stacked widget 时查看其中的所有小部件。这些箭头不会出现在预览或最终组件中。要在 Stacked widget 中的页面之间跳转，请选择 Stacked widget 并使用上下文菜单中的 <b>下一页</b> 和 <b>上一页</b> 条目。<b>插入页</b> 和 <b>删除页</b> 上下文菜单选项允许您添加和删除页。</p>
</td></tr>
<tr valign="top" class="even"><td ><img src="images/designer-containers-tabwidget.png" alt="" /></td><td ><b>Tab Widget</b><p>Tab Widget 允许开发人员将小部件的内容拆分为不同的标记部分，在任何给定的时间只显示其中的一个。默认情况下，Tab Widget 小部件包含两个选项卡，可以根据需要删除或重命名这些选项卡。您还可以添加其他选项卡。</p>
<p>删除一个选项卡（tab）:</p>
<ul>
<li>单击其标签使其成为当前选项卡。</li>
<li>选择选项卡小部件并打开其上下文菜单。</li>
<li>选择 <b>删除页</b>.</li>
</ul>
<p>添加一个新的选项卡（tab）:</p>
<ul>
<li>选择 tab widget 并打开其上下文菜单。</li>
<li>选择 <b>插入页</b>.</li>
<li>可以在 <b>当前页</b> 之前或之后添加页面。<i>Qt Designer</i> 将为这个特定的选项卡创建一个新的小部件，并将其插入到选项卡小部件中。</li>
<li>您可以通过在 <b>属性编辑器</b> 中更改 <code>currentTabText</code> 属性来设置当前选项卡的标题。</li>
</ul>
</td></tr>
<tr valign="top" class="odd"><td ><img src="images/designer-containers-toolbox.png" alt="" /></td><td ><b>Tool Box</b><p>Tool Box 小部件在“工具箱”中提供一系列页面或隔间。它们的处理方式类似于 Stacked Widget 。</p>
<p>若要重命名 Tool Box 小部件中的页，请将 Tool Box 小部件设置为当前页并从 <b>属性编辑器</b> 更改其 <code>currentItemText</code> 属性。</p>
<p>若要添加新页，请从 Tool Box 小部件的上下文菜单中选择 <b>插入页</b> 。您可以在当前页之前或之后添加该页 。</p>
<p>若要删除页面，请从 Tool Box 小部件的上下文菜单中选择 <b>删除页</b> 。</p>
</td></tr>
<tr valign="top" class="even"><td ><img src="images/designer-containers-dockwidget.png" alt="" /></td><td ><b>Dock Widget</b><p>Dock Widget 是浮动面板，通常包含 input widgets 和更复杂的控件，它们要么附加在主窗口边缘上的“停靠区域”，要么浮动为独立的工具窗口。</p>
<p>虽然可以将 Dock Widget 添加到任何类型的窗体中，但它们通常用于从 <a href="designer-creating-mainwindows.html">main window template</a> 创建的窗体 。</p>
</td></tr>
</table></div>
</div>
<!-- @@@designer-using-containers.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="designer-tab-order.html">Qt Designer's Tab Order Editing Mode</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-creating-mainwindows.html">Creating Main Windows in Qt Designer</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
